Split, Send, Reassemble: A Formal Specification of a CAN Bus Protocol Stack
نویسندگان
چکیده
“A Controller Area Network (CAN bus) is a vehicle bus standard designed to allow microcontrollers and devices to communicate with each other in applications without a host computer.” 1 Robert Bosch GmbH developed it in the 80s and published the latest release in 1991 [9]. The protocol is message-based and was designed specifically for automotive applications but is now also used in other areas such as aerospace, maritime and medical equipment. The CAN bus was designed to broadcast many short messages to the entire network. The broadcast mechanism provides data consistency in every node of the system. Typical information sent are sensor data, such as speed or temperature. Due to its simplicity, it is easy to implement; however, its capabilities are rather limited, in particular w.r.t. payload and security. CAN Bus Limitations. In the CAN specification, version 2.0, there are two different message formats to send data in a (typical) CAN network [9]. The only difference between the two formats is that the standard frame format supports a length of 11 bits for the identifier, and the extended frame supports a length of 29 bits. The payload of both messages is 8 bytes only.2 CAN is a low-level protocol and offers no (standard) support for any security feature. Applications are expected to deploy their own security mechanisms. Failure to do so can result in various sorts of attacks. A lot of media attention was generated when cars were hacked and remotely controlled. The best security mechanism is to ensure that only trustworthy applications have access to the CAN bus. An alternative is the use of authentication and encryption, for instance through HMAC [7, 14] or GMAC [3]. The Need for Fragmentation and Reassembly. As soon as encryption and authentication is implemented, the messages used will be longer than 8 bytes; and even without encryption messages are often that long. Therefore there is the need for a fragmentation/reassembly protocol. In this paper we will present such a protocol on top of the CAN bus, which remains unchanged. One reason why we designed our own protocols is that they carry less overhead than off-the-shelf solutions.
منابع مشابه
A Formal Specification of a CAN Bus Protocol Stack∗
“A Controller Area Network (CAN bus) is a vehicle bus standard designed to allow microcontrollers and devices to communicate with each other in applications without a host computer.” 1 Robert Bosch GmbH developed it in the 80s and published the latest release in 1991 [9]. The protocol is message-based and was designed specifically for automotive applications but is now also used in other areas ...
متن کاملA Specification Methodology by a Collection of Compact Properties as Applied to the Intel® ItaniumTM Processor Bus Protocol
In practice, formal specifications are often considered too costly for the benefits they promise. Specifically, interface specifications such as standard bus protocol descriptions are still documented informally, and although many admit formal versions would be useful, they are dissuaded by the time and effort needed for development. We champion a formal specification methodology that attacks t...
متن کاملWeb Service Choreography Verification Using Z Formal Specification
Web Service Choreography Description Language (WS-CDL) describes and orchestrates the services interactions among multiple participants. WS-CDL verification is essential since the interactions would lead to mismatches. Existing works verify the messages ordering, the flow of messages, and the expected results from collaborations. In this paper, we present a Z specification of WS-CDL. Besides ve...
متن کاملEmbedding and Verification of ZigBee Protocol Stack in Event-B
ZigBee is a specification that enhances the IEEE 802.15.4 standard by adding network and security layers and an application framework for high level communication in Wireless Sensor Networks (WSN). Since ZigBee is essential in the operation of WSN; it is imperative to verify the correctness of its design. Formal methods can be used efficiently to verify a wide range of systems, including ZigBee...
متن کاملGenerating Network Security Protocol Implementations from Formal Specifications
We describe the Spi2Java code generation tool, which we have developed in an attempt to bridge the gap between formal security protocol specification and executable implementation. Implemented in Prolog, Spi2Java can input a formal security protocol specification in a variation of the Spi Calculus, and generate a Java code implementation of that protocol. Initially we discuss the role of code g...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2017